<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta http-equiv="content-type" content="text/html;charset=utf-8">
    <link href="../../style.css" rel="stylesheet" type="text/css">
    <link rel="icon" href="../images/PETSc_RGB-logo.png" type="image/png" sizes="16x16">
    <title>PETSc: Documentation: Changes: Development</title>
  </head>
  <body>

    <div id="logo">
      <h1>PETSc</h1>
    </div>

    <div id="header">
      <h1><!--begin-->Documentation: Changes: Development<!--end--></h1>
    </div>

    <hr>

    <div id="sidebar">
      <ul>
        <li><a href="../../index.html">Home</a></li>
        <li><a href="../../download/index.html">Download</a></li>
        <li><a href="../../features/index.html">Features</a></li>
        <li>
          <a href="../../documentation/index.html">Documentation</a>
          <ul>
            <li><a href="../index.html">Manual pages and Users Manual</a></li>
            <li><a href="../referencing.html">Citing PETSc</a></li>
            <li><a href="../tutorials/index.html">Tutorials</a></li>
            <li><a href="../installation.html">Installation</a></li>
            <li><a href="../saws.html">SAWs</a></li>
            <li>
              <a href="index.html">Changes</a>
              <ul>
                <li><span class="current">dev</span></li>
                <li><a href="313.html">3.13</a></li>
                <li><a href="312.html">3.12</a></li>
                <li><a href="311.html">3.11</a></li>
                <li><a href="310.html">3.10</a></li>
                <li><a href="39.html">3.9</a></li>
                <li><a href="38.html">3.8</a></li>
                <li><a href="37.html">3.7</a></li>
                <li><a href="36.html">3.6</a></li>
                <li><a href="35.html">3.5</a></li>
                <li><a href="34.html">3.4</a></li>
                <li><a href="33.html">3.3</a></li>
                <li><a href="32.html">3.2</a></li>
                <li><a href="31.html">3.1</a></li>
                <li><a href="300.html">3.0.0</a></li>
                <li><a href="233.html">2.3.3</a></li>
                <li><a href="232.html">2.3.2</a></li>
                <li><a href="231.html">2.3.1</a></li>
                <li><a href="230.html">2.3.0</a></li>
                <li><a href="221.html">2.2.1</a></li>
                <li><a href="220.html">2.2.0</a></li>
                <li><a href="216.html">2.1.6</a></li>
                <li><a href="215.html">2.1.5</a></li>
                <li><a href="213.html">2.1.3</a></li>
                <li><a href="212.html">2.1.2</a></li>
                <li><a href="211.html">2.1.1</a></li>
                <li><a href="21.html">2.1.0</a></li>
                <li><a href="2029.html">2.0.29</a></li>
                <li><a href="2028.html">2.0.28</a></li>
                <li><a href="2024.html">2.0.24</a></li>
                <li><a href="2022.html">2.0.22</a></li>
                <li><a href="2018-21.html">2.0.18-21</a></li>
                <li><a href="2017.html">2.0.17</a></li>
                <li><a href="2016.html">2.0.16</a></li>
                <li><a href="2015.html">2.0.15</a></li>
              </ul>
            </li>
            <li><a href="../bugreporting.html">Bug Reporting</a></li>
            <li><a href="../codemanagement.html">Code Management</a></li>
            <li><a href="../faq.html">FAQ</a></li>
            <li><a href="../license.html">License</a></li>
            <li><a href="../linearsolvertable.html">Linear Solver Table</a></li>
            <li><a href="../nonlinearsolvertable.html">Nonlinear Solver Table</a></li>
	    <li><a href="../taosolvertable.html">TAO Solver Table</a></li>
          </ul>
        </li>
        <li><a href="../../publications/index.html">Applications/Publications</a></li>
        <li><a href="../../miscellaneous/index.html">Miscellaneous</a></li>
        <li><a href="../../miscellaneous/external.html">External Software</a></li>
        <li><a href="https://docs.petsc.org/en/latest/developers/index.html">Developers Site</a></li>
      </ul>
    </div>

    <!--begin-->

    <style type="text/css">
      h2 {
        color: red;
      }

      h4 {
        font-weight: bold;
        text-decoration: underline;
      }
    </style>

    <div id="main">

      <div align="center">
        <h2><a name="CHANGES">CHANGES in the PETSc Development Version</a></h2>
      </div>

      <!-- Please use Imperative with first letter cap, e.g. Add, Improve, Change etc. WITHOUT dot at the end -->
      <h4>General:</h4>
        <ul>
          <li>Add PETSC_MPI_THREAD_REQUIRED to control the requested threading level for MPI_Init</li>
          <li>Change the default of -cuda_initialize from yes to no</li>
          <li>Add PetscOptionsInsertStringYAML() and "-options_string_yaml" for YAML-formatted options on the command line</li>
          <li>Add PETSC_OPTIONS_YAML environment variable for setting options in YAML format</li>
          <li>Add PetscDetermineInitialFPTrap(); fix so that when Linux or MacOS Fortran linker enables catching floating point divide by zero the trapping is disabled for LAPACK routines that generate divide by zero, for example, the reference implementation of ieeeck().</li>
          <li>Add floating point exception handling support for freebsd and Windows.</li>
          <li>Consistently set exception handling for divide by zero, invalid, underflow, and overflow for all systems when possible.</li>
          <li>-options_monitor and -options_monitor_cancel have immediate global effect, see PetscInitialize() for details</li>
          <li>Remove PetscOptionsSetFromOptions()</li>
          <li>Remove PetscOptionsMonitorCancel()</li>
        </ul>
      <h4>Configure/Build:</h4>
        <ul>
          <li>Change --with-matlabengine-lib= to --with-matlab-engine-lib= to match --with-matlab-engine, print error message for deprecated form</li>
        </ul>
      <h4>IS:</h4>
      <h4>PetscDraw:</h4>
      <h4>PetscSF:</h4>
      <h4>PF:</h4>
      <h4>Vec:</h4>
        <ul>
          <li>Fix memory leaks when requesting -vec_type {standard|cuda|viennacl} when the vector is already of the desired type</li>
        </ul>
      <h4>VecScatter:</h4>
      <h4>PetscSection:</h4>
      <ul>
        <li>PetscSectionGetClosurePermutation(), PetscSectionSetClosurePermutation(), and PetscSectionGetClosureInversePermutation() all require a new argument depth and the getters require closure size to be specified by the caller.
          This allows multiple closure permutations to be specified, e.g., for mixed topology meshes and boundary faces and for variable-degree spaces.
          The previous behavior only applied to points at height zero.
        </li>
      </ul>
      <h4>PetscPartitioner:</h4>
      <h4>Mat:</h4>
        <ul>
          <li>Fix few bugs for MATSEQSBAIJ when missing diagonal entries</li>
          <li>Fix few bugs when trying to reuse matrices within MatMat operations</li>
          <li>Deprecate MatFreeIntermediateDataStructures() in favor of MatProductClear()</li>
          <li>Add MatShellSetMatProductOperation() to allow users specify symbolic and numeric phases for MatMat operations with MATSHELL matrices</li>
          <li>Add support for distributed dense matrices on GPUs (MATMPIDENSECUDA)</li>
          <li>Add few missing get/set/replace array operations for MATDENSE and MATDENSECUDA matrices</li>
          <li>Add MatDense{Get|Restore}ColumnVec to access memory of a dense matrix as a Vec, together with read-only and write-only variants</li>
          <li>Add MatDense{Get|Restore}SubMatrix to access memory of a contiguous subset of columns of a dense matrix as a Mat</li>
          <li>Deprecate MatSeqDenseSetLDA in favor of MatDenseSetLDA</li>
          <li>Add support for A*B and A^t*B operations with A = AIJCUSPARSE and B = DENSECUDA matrices</li>
          <li>Add basic support for MATPRODUCT_AB (resp. MATPRODUCT_AtB) for any matrices with mult (multtranpose) operation defined and B dense</li>
          <li>Add MATSCALAPACK, a new Mat type that wraps a ScaLAPACK matrix</li>
          <li>Add support for MUMPS-5.3.0 distributed right hand side</li>
        </ul>
      <h4>PC:</h4>
        <ul>
          <li>Fix bugs related with reusing PCILU/PCICC/PCLU/PCCHOLESKY preconditioners with SEQAIJCUSPARSE matrices</li>
          <li>GAMG uses MAT_SPD to default to CG for the eigen estimate in Chebyshev smoothers</li>
        </ul>
      <h4>KSP:</h4>
        <ul>
          <li>Add KSPConvergedDefaultSetConvergedMaxits() to declare convergence when the maximum number of iterations is reached</li>
          <li>Fix many KSP implementations to actually perform the number of iterations requested</li>
          <li>Add KSPMatSolve() for solving iteratively (currently only with KSPHPDDM) systems with multiple right-hand sides, and KSP{Set|Get}MatSolveBlockSize() to set a block size limit</li>
          <li>Chebyshev uses MAT_SPD to default to CG for the eigen estimate</li>
        </ul>
      <h4>SNES:</h4>
      <h4>SNESLineSearch:</h4>
      <h4>TS:</h4>
      <h4>TAO:</h4>
      <h4>DM/DA:</h4>
      <h4>DMPlex:</h4>
        <ul>
          <li>Add DMPlexMatSetClosureGeneral() for different row and column layouts</li>
          <li>DMPlexGet/RestoreClosureIndices() now take argument for ignoring the closure permutation and for modifying the input values for SetClosure()</li>
          <li>DMPlexComputeInterpolatorNested() now takes a flag allowing nested interpolation between different spaces on the same mesh</li>
          <li>Add DMPlexInsertBoundaryValuesEssentialBdField() to insert boundary values using a field only supported on the boundary</li>
          <li>Change DMPlexCreateSubpointIS() to DMPlexGetSubpointIS()</li>
          <li>Add PetscDSGet/SetBdJacobianPreconditioner() to assembly a PC for the boundary Jacobian</li>
          <li>Add DMSetRegionNumDS() to directly set the DS for a given region</li>
          <li>Add PetscDSGetQuadrature() to get the quadrature shared by all fields in the DS</li>
          <li>Add several refinement methods for Plex</li>
          <li>Add DMPlexGet/SetActivePoint() to allow user to see which mesh point is being handled by projection</li>
          <li>Add DMPlexComputeOrthogonalQuality() to compute cell-wise orthogonality quality mesh statistic</li>
          <li>DMPlexSetClosurePermutationTensor() now sets tensor permutations at every depth, instead of just height 0.</li>
        </ul>
      <h4>DT:</h4>
        <ul>
          <li>Add PetscDTJacobiNorm() for the weighted L2 norm of Jacobi polynomials</li>
          <li>Add PetscDTJacobiEvalJet() and PetscDTPKDEvalJet() for evaluating the derivatives of orthogonal polynomials on the segment (Jacobi) and simplex (PKD)</li>
          <li>Add PetscDTIndexToGradedOrder() and PetscDTGradedOrderToIndex() for indexing multivariate monomials and derivatives in a linear order</li>
          <li>Add PetscSpaceType "sum" for constructing FE spaces as the sum or concatenation of other spaces.</li>
        </ul>
      <h4>PetscViewer:</h4>
      <h4>SYS:</h4>
        <ul>
          <li>Add PetscPowInt64 returning a 64bit integer result for cases where PetscPowInt result overflows 32bit representations</li>
        </ul>
      <h4>AO:</h4>
      <h4>Sieve:</h4>
      <h4>Fortran:</h4>
    </div>

    <!--end-->

    <hr>

  </body>
</html>
